|  |  | The center's a bit off, but this should work if
you don't cut it too deep.
#local A = <-1,0,0>;
#local B = <1,0,0>;
#local C = <0,sqrt(2),0>;
#local D = <0,0,1>;
#local RAD = 0.075;
#declare tetra = mesh {
   triangle {A,B,C}
   triangle {B,C,D}
   triangle {C,D,A}
   triangle {D,A,B}
   inside_vector (A+B+C+D)/4
   translate <0,0,-RAD>
}
#declare octaside = union {
    sphere {A,RAD}
    sphere {B,RAD}
    sphere {C,RAD}
    cylinder {A,B,RAD}
    cylinder {C,B,RAD}
    cylinder {A,C,RAD}
    object{tetra}
    rotate <45,0,0>
    translate <0,0,-1>
};
#declare pyramid = union {
   object {octaside}
   object {octaside rotate <0,90,0>}
   object {octaside rotate <0,180,0>}
   object {octaside rotate <0,270,0>}
};
#declare octagon = union {
   object {pyramid}
   object {pyramid rotate <180,0,0>}
};
Post a reply to this message
 |  |